<?php

/**
 * \file
 * Classe `Address`.
 */

/**
 * Membre de formulaire de recherche pour l'entité Address.
 * La requete se fera avec un \like.
 */
namespace pilar\SearchFormMembers /* \cond */ ; /* \endcond */
{

/**
 * Membre de formulaire de recherche pour l'entité Address.
 *
 * \since 16/03/2009
 * \author Dirk MARSKI <dirk.marski@gmail.com>
 */
class Address extends \pilar\Forms\SearchFormMember {


protected function load() {
 parent::load();

 $fm = new \pilar\SimpleFormMembers\Address(array(
  'name' => $this->_entityMember->get('name'),
  'label' => $this->_entityMember->get('caption')
 ));
 $this->addFormMember($fm);
}


/**
 * Génère la requête sql du champs 'value' du membre d'entité si la valeur
 * récupérée est valide.
 *
 * \param $objects ObjectCollection pour la requête.
 * \since 10/03/2009
 */
protected function createSqlExpressions($objects, $value) {
 $valueChanged = false;
 foreach ($this->formMembers() as $fm) {
  $values = $fm->values();
  foreach ($fm->fieldNames() as $fn) {
   $cont = false;
   if ($valueChanged) {
    $value = '';
   }
   if ($value == '' && !$fm->isFieldEmpty($fn)) {
    $value = $values[$fn];
    $valueChanged = true;
    $cont = true;
		 } else if ($value != '') {
    $cont = true;
   }
   if ($cont) {
    // TODO: vérifier la compatibilité avec 'notEmpty' ...
    if ($fm->acceptsValue($value, $fn)) {
     $this->addSqlExp(
      \like(
		 				$objects->member($this->_entityMember->get('name'))->field($fn),
       \cst('%'.$value.'%')
     ));
    }
   }
  }
 }
}


} // Class.

} // Namespace.

?>
